'\" te
.\"  Copyright (c) 20088888888 Sun Microsystems, Inc. All Rights Reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH DEVFSADM 8 "Jun 23, 2008"
.SH NAME
devfsadm, devfsadmd \- administration command for /dev
.SH SYNOPSIS
.LP
.nf
\fB/usr/sbin/devfsadm\fR [\fB-C\fR] [\fB-c\fR \fIdevice_class\fR] [\fB-i\fR \fIdriver_name\fR]
     [ \fB-n\fR] [\fB-r\fR \fIroot_dir\fR] [\fB-s\fR] [\fB-t\fR \fItable_file\fR] [\fB-v\fR]
.fi

.LP
.nf
\fB/usr/lib/devfsadm/devfsadmd\fR
.fi

.SH DESCRIPTION
.sp
.LP
\fBdevfsadm\fR(8) maintains the \fB/dev\fR namespace. It replaces the previous
suite of \fBdevfs\fR administration tools including \fBdrvconfig\fR(8),
\fBdisks\fR(8), \fBtapes\fR(8), \fBports\fR(8), \fBaudlinks\fR(8), and
\fBdevlinks\fR(8).
.sp
.LP
The default operation is to attempt to load every driver in the system and
attach to all possible device instances. Next, \fBdevfsadm\fR creates logical
links to device nodes in \fB/dev\fR and \fB/devices\fR and loads the device
policy.
.sp
.LP
\fBdevfsadmd\fR(8) is the daemon version of \fBdevfsadm\fR(8). The daemon is
started during system startup and is responsible for handling both
reconfiguration boot processing and updating \fB/dev\fR and \fB/devices\fR in
response to dynamic reconfiguration event notifications from the kernel.
.sp
.LP
For compatibility purposes, \fBdrvconfig\fR(8), \fBdisks\fR(8),
\fBtapes\fR(8), \fBports\fR(8), \fBaudlinks\fR(8), and \fBdevlinks\fR(8)
are implemented as links to \fBdevfsadm\fR.
.sp
.LP
In addition to managing \fB/dev\fR, \fBdevfsadm\fR also maintains the
\fBpath_to_inst\fR(5) database.
.SH OPTIONS
.sp
.LP
The following options are supported:
.sp
.ne 2
.na
\fB\fB-C\fR\fR
.ad
.RS 19n
Cleanup mode. Prompt \fBdevfsadm\fR to cleanup dangling \fB/dev\fR links that
are not normally removed. If the \fB-c\fR option is also used, \fBdevfsadm\fR
only cleans up for the listed devices' classes.
.RE

.sp
.ne 2
.na
\fB\fB-c\fR \fIdevice_class\fR\fR
.ad
.RS 19n
Restrict operations to devices of class \fIdevice_class\fR. Solaris defines the
following values for \fIdevice_class\fR: \fBdisk\fR, \fBtape\fR, \fBport\fR,
\fBaudio\fR, and \fBpseudo\fR. This option might be specified more than once to
specify multiple device classes.
.RE

.sp
.ne 2
.na
\fB\fB-i\fR \fIdriver_name\fR\fR
.ad
.RS 19n
Configure only the devices for the named driver, \fIdriver_name\fR.
.RE

.sp
.ne 2
.na
\fB\fB-n\fR\fR
.ad
.RS 19n
Do not attempt to load drivers or add new nodes to the kernel device tree.
.RE

.sp
.ne 2
.na
\fB\fB-s\fR\fR
.ad
.RS 19n
Suppress any changes to \fB/dev\fR. This is useful with the \fB-v\fR option for
debugging.
.RE

.sp
.ne 2
.na
\fB\fB-t\fR \fItable_file\fR\fR
.ad
.RS 19n
Read an alternate \fBdevlink.tab\fR file. \fBdevfsadm\fR normally reads
\fB/etc/devlink.tab\fR.
.RE

.sp
.ne 2
.na
\fB\fB-r\fR \fIroot_dir\fR\fR
.ad
.RS 19n
Presume that the \fB/dev\fR directory trees are found under \fIroot_dir\fR, not
directly under \fBroot\fR (\fB/\fR). No other use or assumptions are made about
\fIroot_dir\fR.
.RE

.sp
.ne 2
.na
\fB\fB-v\fR\fR
.ad
.RS 19n
Print changes to \fB/dev\fR in verbose mode.
.RE

.SH EXIT STATUS
.sp
.LP
The following exit values are returned:
.sp
.ne 2
.na
\fB\fB0\fR\fR
.ad
.RS 5n
Successful completion.
.RE

.sp
.ne 2
.na
\fB\fB1\fR\fR
.ad
.RS 5n
An error occurred.
.RE

.SH FILES
.sp
.ne 2
.na
\fB\fB/devices\fR\fR
.ad
.sp .6
.RS 4n
device nodes directory
.RE

.sp
.ne 2
.na
\fB\fB/dev\fR\fR
.ad
.sp .6
.RS 4n
logical symbolic links to /devices
.RE

.sp
.ne 2
.na
\fB\fB/usr/lib/devfsadm/devfsadmd\fR\fR
.ad
.sp .6
.RS 4n
devfsadm daemon
.RE

.sp
.ne 2
.na
\fB\fB/dev/.devfsadm_dev.lock\fR\fR
.ad
.sp .6
.RS 4n
update lock file
.RE

.sp
.ne 2
.na
\fB\fB/dev/.devfsadm_daemon.lock\fR\fR
.ad
.sp .6
.RS 4n
daemon lock file
.RE

.sp
.ne 2
.na
\fB\fB/etc/security/device_policy\fR\fR
.ad
.sp .6
.RS 4n
device policy file
.RE

.sp
.ne 2
.na
\fB\fB/etc/security/extra_privs\fR\fR
.ad
.sp .6
.RS 4n
additional device privileges
.RE

.SH SEE ALSO
.sp
.LP
.BR svcs (1),
.BR devfs (4FS),
.BR path_to_inst (5),
.BR attributes (7),
.BR privileges (7),
.BR smf (7),
.BR add_drv (8),
.BR modinfo (8),
.BR modload (8),
.BR modunload (8),
.BR rem_drv (8),
.BR svcadm (8),
.BR tapes (8)
.SH NOTES
.sp
.LP
This document does not constitute an \fBAPI\fR. The \fB/devices\fR directory
might not exist or might have different contents or interpretations in a future
release. The existence of this notice does not imply that any other
documentation that lacks this notice constitutes an \fBAPI\fR.
.sp
.LP
\fBdevfsadm\fR no longer manages the \fB/devices\fR name space. See
\fBdevfs\fR(4FS).
.sp
.LP
The device configuration service is managed by the service management facility,
\fBsmf\fR(7), under the service identifier, and can be used to start
\fBdevfsadm\fR during reconfiguration boot by:
.sp
.in +2
.nf
svc:/system/device/local:default
.fi
.in -2
.sp

.sp
.LP
Otherwise, \fBdevfsadm\fR is started by:
.sp
.in +2
.nf
svc:/system/sysevent:default
.fi
.in -2
.sp

.sp
.LP
Administrative actions on this service, such as enabling, disabling, or
requesting restart, can be performed using \fBsvcadm\fR(8). The service's
status can be queried using the \fBsvcs\fR(1) command.
